class Solution {
public:
    int climbStairs(int n) 
    {
        if (n <= 2)
            return n;

        else
        {
            vector<int> reslut(n);

            reslut[0] = 1;
            reslut[1] = 2;

            for(int i = 2; i < n; i++)
            {
                reslut[i] = reslut[i - 1] + reslut[i - 2];
            }

            return reslut[n - 1];
        } 
       
    }
};

//自底向上动态规划